Fixed disk drives have been installed in small computing systems because fixed disk drives, unlike floppy disk drives, offer substantially faster data track access times and significantly greater data storage capacities. One popular small computing system architecture is the IBM Personal Computer AT (tm). This computing architecture, based around the Intel 80286 monolithic microprocessor, has become a standard "open" architecture, meaning that the architecture provides a number of input/output port connectors enabling expansion boards to connect to the data, address and control buses of the computer. Expansion boards typically plug into 1 the computer and thereby expand in some predetermined fashion the functional capability of the overall computing system.
One usually encountered expansion card is a disk drive controller card which interfaces e.g. stepper motor actuated floppy and fixed disk drives to the bus level computer architecture. Typically, up to two floppy disks and up to two fixed disks are supported simultaneously by a single controller card. More drives may be added by addition of additional controller cards, etc. Usually, the computer housing defines wells where the two fixed disk drives and the two floppy drives may be contained and mounted, the floppy drives positioned to provide front panel access to the user. The computer's internal power supply is typically configured to provide pigtail leads and plugs for supplying operating power to the four internal drives.
Computers of this type are typically divided into memory space and input/output (I/O) space or addresses. Typically, certain I/O addresses are dedicated to the fixed 1 disk drive resources. One frequently encountered logical arrangement within the I/O space of the host computer is as follows:
______________________________________ I/O Address Function ______________________________________ 1F0 Data Byte 1F1 Error Byte 1F2 Sector (512 byte) Count Byte 1F3 Starting Sector Byte 1F4 Starting Cylinder, low byte 1F5 Starting Cylinder, high byte 1F6 Select Drive and Head Byte 1F7 Status/Command Byte 1F8-15 Reserved 3F6 Alternate Status/Command Byte 3F7 Digital Input Byte ______________________________________
The disk drive controller card responds to the host at these I/O addresses in order to accomplish fixed disk drive data transfer transactions as may be requested by the host. For example, if the host wishes to read blocks ot data from, or to write blocks of data to the disk drive, the host will write the block count of the transfer at lF2, the starting sector identifier (within a concentric data track) at lF3, the starting cylinder logical address at IF4 and IF5 and the select drive (one of two drives may be selected) and head at IF6. A command byte is then written at IF7 telling the drive to retrieve the data from the disk surface (read) or to obtain the data from the host data bus (write). The disk drive then performs the requested task.
When the task is completed, the disk drive signals that fact by generating an interrupt, thereby indicating to the host that the drive is ready to perform the next task, or transfer the next block of data (if a multi-block transfer is requested). The host then reads the drive status byte location which acknowledges receipt of data read from the disk or which indicates data ready to be transferred via its bus to be written onto the disk. Reading the status byte location IF7 causes the drive's interrupt to be reset. The drive performs the next task and sets its interrupt line. The host again reads the status byte location, and interrupt driven process continues until all data blocks have been transferred.
The controller card typically translates the starting cylinder number into a physical cylinder location for the selected disk drive and then causes the selected disk drive to move its head structure to the physical location commanded. Usually, but not necessarily, the controller puts out stepping pulses and a step direction signal to the disk drive. The disk drive processes the step pulses to cause its actuator to move the heads to the desired location. The select drive and head byte selects the particular drive and head (data surface) which, with the cylinder location, specifies a particular data track.
Disk drive subsystems have been developed which integrate the disk drive controller electronics with the actuator control. One example is the Xebec OWL disk drive which integrated a SASI controller into a disk drive having an open loop stepper motor based head positioner. The Xebec OWL typically required a host adaptor card which plugged into the host expansion interface slot and a cable leading to the disk drive.
Another example is the fixed disk drive expansion board product pioneered by the assignee of the present invention under the registered brand name HARDCARD (tm). This fixed disk drive expansion board product is described in U.S. Pat. No. 4,639,863, hereby incorporated by reference. This bus-level interface disk drive product integrated the head and disk assembly and the drive controller electronics and interface onto a single expansion card which plugged directly into the host computer expansion slot.
A further recent example has been the Conner Peripherals interface for the IBM Personal Computer AT (tm). This interface has enabled a simplified host adaptor card to connect up to two fixed disk drives having on-board processing capability for decoding and executing host commands received from the host buses. The adapter card merely buffered the data bus and control/status bus, and decoded the address bus at a single I/O address space originally intended for a fixed disk drive. Each drive included interface registers for storing the byte values originally processed by the controller card. The disk drive microprocessor which directly controls head position was also given the task of processing the data supplied by the host at the interface registers. Only two disk drives were supported with Conner Peripherals interface, and overall connecting cable length was limited to about two feet.
The Small Computer System Interface (SCSI) has gained some widespread acceptance in small computer system architectures. SCSI presently accommodates up to seven adaptors, each of which may be included on a separate disk drive, but requires a significant investment in supporting software.
While there have been proposals in the prior art for arranging small disk drives into a large memory array, there has been no practical implementation enabling fixed disk drive clusters or modules to be added incrementally and used very efficiently, in such numbers and arrangements as may be desired by the user from time to time and without requiring substantial modification of operating software each time that an additional cluster or drive is added to the system.